#################################################第二章
#数学运算
# import math
# print(math.sin(3))
# print(math.hypot(6,7))
# print(math.sqrt(6))
# print(math.pow(2,8))
#数据类型
#简单数据类型主要指数字型（Number）:
#Number数据类型主要包括四种类型，分别是int(整型)、float(浮点型)、bool(布尔型)、complex(复数)
## n=1#将1赋值给变量n
## print(n)#输出变量n的值
## print(type(n))#输出变量n的数据类型

######################################给num1赋值一个很大的整数
# num1=8888888888888888
# print(num1)
# print(type(num1))
#./
#
# num2=-8888888888888888
# print(num2)
# print(type(num2)




################################################给num2赋值一个很小的整数
# num2=-8888888888888888
# print(num2)
# print(type(num2))
#
#
# f1=1.23                               #十进制形式
# print("f1",type(f1))
# print("f1Type:",type(f1))
# f2=1243.9876554321
# print("f2:",f2)
# print("f2Type:",type(f2))



# f3=1.2e5                                 #科学计数法
# print("f3:",f3)
# print("f3Type:",type(f3))
# f4=1.23*0.1
# print("f4:",f4)
# print("f4Type:",type(f4))
###############################################################bool型
# b1=True
# b2=False
# print(b1,b2)
# print(type(b1))
# print(type(b2))

#############bin()将整数类型转换为二进制整数的字符串形式
#############cot（）将整数类型转换为八进制整数的字符串形式
##############hex（）将整数类型转换为十六进制整数的字符串形式
# print(bin(60))
# print(bin(123))
# print(cot(1010))
# print(hex(123))
# print(hex(60))

# #####################int()将整数、浮点数、字符串装换为十进制整数形式
# print(int(123))
# #float()将整数、浮点数、字符串装换为浮点数形式
# print(float(60))
# #将整数、浮点数装换位字符串类型
#
# #None:空值，是Python中一个特殊的值，用None表示，它的含义为空
# n=None
# print(n)
# print(type(n))


############################################################输出函数
#Sstr1='hell'
#print('h'in str1)
#print('a'in str1)
#print('c'not in str1)
#print('o'not in str1)



############################################################赋值运算符号
#a=8
#a+=5
#print(a)
#a=5
#a-=5
#print(a)

##################################比较运算符号
#a=2
#b=11
#print(a==b)
#print(a!=b)
#print(a>b)
#print(a<b)
#print(a<=b)
#print(a>=b)

##############################逻辑运算
# print(True and False)
# print(True or False)
# print(not False)
# print(True and True)
# ###################################################################################第三章
# ##################################################################if语句
# score = eval(input("请输入成绩分数"))
# if 60  <=score:
#     print("成绩已合格")
#     if 90<= score <=100:
#         print("成绩很好")
#
#
#
#
#
#
# a=90
# if a>20:
#     print("变量a大于20")
# else:
#     print("变量a不大于20")
#
#
#
#
#
#
#
#
#
# score = eval(input("请输入成绩分数"))
# if score >= 60:
#     print("成绩及格")
#     if score >= 90:
#         print("成绩很好")
#     else:
#         print("成绩一般")
#
#
#
#
#
#
#
#
#
#
#
# score = eval(input("请输入成绩分数"))
# if score >= 60:
#     print("成绩及格")
#     if score>=90:
#         print("成绩很好")
#     else:
#         print("成绩一般")
# else:
#     print("成绩不合格")
#     if score >= 30:
#        print("成绩较差")
#     else:
#         print("成绩极差")
#
#
#
#
#
#
#
#
#
#
#
#
# score = eval(input("请输入成绩分数"))
# if score>=90:
#     print("成绩优秀")
# elif score >= 80:
#     print("成绩良好")
# elif score >= 70:
#     print("成绩中等")
# elif score >= 60:
#     print("成绩较好")
# else:
#     print("成绩不合格")


# 作业
# score=eval(input("请输入年份"))
# if score % 4 ==0 and score % 100!=0:
#     print("闰年")
# else:
#     print("不为闰年")



################################################## while循环
# i=1
# while i<= 5:
#     print("上班星期为：",i)
#     i = i+1
#     t=9
#     while t<=17:
#         print("时间段：",t)
#         t = t+1

# i=1
# while i<=5:
#     print("上班星期为：",i,)
#     i=i+1
#     for i in ["9","10","11","12","13","14","15","16","17"]:
#         print("时间段：",t)
#     print()


# a=1
# while a<=100:
#     print('今天是第%d天'% a)
#     a =a + 1

# n=1
# sum=0
# while n <=1000:
#     sum = sum+n
#     n = n + 1
#     print(sum)
# print(sum)





################################################################99乘法表
# i = 1
# while i <10:
#     j =1
#     while j<= i:
#         print("%d*%d=%d"%(j,i,j*i),end='')
#         j+=1
#     print("")
#     i+=1



################################################### for循环
# for i  in ["a","b","c","d","e"]:
#     print(i)
#
# for i in range(1,11):
#     print(i,end="")
#     print()
# for i in range(1,11,2):
#     print(i,end="")
#     print()
# for i in range(2,11,2):
#     print(i,end="")


# for i in range(1,100):
#     print(i,end="")
#     print()

# sum=0
# for i in range(1,500):
#     sum=sum+i
#     print(sum)


# for i in range(1,6):
#     print('上班为周',i)
#     for t in range(9,18):
#         print('时间段：',t,end="")
#     print()








# for i in range(1,10):
#     for j in range(1,i+1):
#         print(f"{j}*{i}={j*i}",end="\t")
#     print()

########################################################################## 跳出循环
# i =0
# while i<=5:
#     i +=1
#     print('星期为',i)
#     if i ==3:
#         break
#

# i=1
# while i<=5:
#     if i==3:
#         break
#     print('星期为',i)
#     i+=1




# for i in range(1,6):
#     print('星期为：',i)
#     if i ==3:
#         break



# for i in range(1,6):
#     if i==3:
#         break
#     print("星期为：",i)


# i=0
# while i<5:
#     i=i+1
#     if i==4:
#         continue
#     print("星期",i)


#
# for i in range(1,6):
#     if i ==4:
#         continue
#     print("星期",i)




######################################################################################第四章
#############################################################################函数
# def shi():
#     print('举头望明月,低头思故乡')
# shi()
# def add():
#     a = 3
#     b =5
#     s=a+b
#     print(s)
#     return a
# c=add()
# print(c)

# def add(a,b):
#     print(a+b)
# add(1,3)
# a=1
# b=3
# add(a,b)
# add(2*3,4*5)
# c=3
# add(8,c*3)


###################################################################
# def score(a,b,c):
#     print('张三成绩为：',a)
#     print('李四成绩为：',b)
#     print('王五成绩为：',c)
# score(85,92,60)


# def reg(name,age,sex="女"):
#     print('姓名：{}年龄{}性别：{}'.format(name,age,sex))
#
#
#
# reg('张三',20)
# print('李四',21,'男')
##########################################################################参数
# def fav(*fru):
#     print('水果：')
#     for i in fru:
#         print(i)


# def show(a,b,l):
#     print(a)
#     print(b)
#     print(l)
# show(1,2,4,)


# def rectangle():
#     a=int(input('长为：'))
#     b=int(input('宽为：'))
#     s=a*b
#     c=2*(a+b)
#     print('面积：',s)
#     print('周长：',c)
# rectangle()





# def add(a,b):
#     c=a+b
#     return c,a,b,a*b,a-b
# d=add(1,2)
# print(d)

# def fun():
#     a=20
#     return a
# a=10
# print(a)
# print(fun())


# def fun(i):
#     if i%2==0:
#         print('为偶数')
#     if i%2!=0and i>10:
#         print('大于10的数')
# pro(1,6,8,56,32)

##############################################################递归和匿名函数
# def f(n):
#     if n <=1:
#         return 1
#     else:
#         return n*f(n-1)
#
# num = int(input('请输入一个整数：'))
# s=f(num)
# print(num,'的阶乘是:',s)


# def sum(m):
#     if m==1:
#         return 1
#     else:
#         return m+sum(m-1)
# print('1~100相加的和为',sum(100))


# def fibo(n):
#     if n<=2:
#         return 1
#     else:
#         return fibo(n-1)+fibo(n-2)
# print('斐波那契额数列的第{}项为{}'.format(7,fibo(7)))

##############################################################匿名函数
# sum=lambda a,b,c:a+b+c
# print(sum(1,2,3))
#
#
# fun=lambda m:m**2
# print(fun(5))






############################菲玻娜切
# i = 3
# a1=1
# a2=1
#
# m=50
# while i<=m:
#     a3=a1+a2
#     a1=a2
#     a2=a3
#     print('第%d的项为%d',(i,a2))
#     i+=1

# i = 3
# a1 = 1
# a2 = 1
# m=50
#
# for i in range(i,m+1):
#     a3 = a1 + a2
#     a1=a2
#     a2=a3
#     print('第%d的项为%d',(i,a2))
#     i+=1


########################################################################################################第七章
# ##################################################################################字符串str
# #使用引号，包括单引号和双引号，三引号
# s1='hello world'
# print(s1)
# print(type(s1))
#
# s2='你好石家庄'
# print(s2)
# print(type(s2))
# #2、使用str()函数进行创建
# num1=10
# print(type(num1))
# s3=str(num1)
# print(type(s3))
# num2=3.1415926
# print(type(num2))
# s4=str(num2)
# print(s4)
# print(type(s4))
# # ########################################################################字符串的格式化
# # #1、使用替代符号%
# # #浮点型转化
# s5='浮点数精确为：%f'%1.2345
# print(s5)
# s6='浮点数精确为：%.2f'%1.2345
# print(s6)
# # #整数转化
# s7='整数精确为：%d'%1.2345
# print(s7)
# #字符串转化
# s8='整数精确为：%s'%1.2345
# print(s8)
# #
# # #2、通过format()函数格式化，格式如下
# # #"{}".format(str)
# # #或
# # #"{} {}".format(str1,str2)
# print('{} {}'.format('hello','world'))
# ###############################################################################字符穿的合并
# #1、使用“+”对多个字符串进行连接
# s9="hello"
# s10="world"
# print(s9+s10)
# # #使用星号（*）表示重复
# print(s9*3)
# #
# # #2、使用join函数配合列表实现对多个和字符穿的连接
# s11=['hello','python','hello','world']
# s12='123'
# print(''.join(s11))
# print(s12.join(s11))
# #############################################################字符串的截取
# #1、使用牵引截取单个字符
# s13='python'
# print(s13[3])
# print(s13[-3])
#
#   # #2、使用切片截取字符串，字符串名[start:end:step],前闭后开
# s14='python'
# print(s14[0:5])#取下标为0~4的字符
# print(s14[2:5])#取下标为2~5的字符
# print(s14[3:1])#输出为空
#
# # # ####3、使用split（）函数截取字符串 字符串名.split（分隔符）
# s15='开始,1,       2,           3,              4,        5, 6'
# print(s15.split())#默认空白字符分隔
# print(s15.split('2'))
# #########################################################################################
# #字符串的比较
# # Python使用“==”“！=”运算比较字符串的内容。
# str1=123#str1整型数据
# str2="123"#str2字符串数据
# #未转化数据类型
# if str1 ==str2:
#     print('相同')
# else:
#     print('不同')
#
#
# #转化数据类型
# if str(str1)==str2:
#     print('相同')
# else:
#     print('不同')
#
#
# ##########################################################字符串的长度len()
# #1、字符串
# str3='Hello,World'
# print(len(str3))
#
#
# #2、列表
# l1=[1,4,7,9,'Hello','world','!']
# print(len(l1))
# #####################################################字符串的查找find()或者rfind()
# s4='1234563333'
# print(s4.find("3"))
# print(s4.find('123'))
# print(s4.find('b'))
#
#
# #################################################字符串替换：replace(old,new)
# s5="Hello world!Hello Python!Hello  Shijianzhuang!"
# s6=s5.replace('Hello','Hi')
# print(s6)
# s7=s5.replace('Hello','Hi',2)
# print(s7)
# s8=s5.replace('','')
# print(s8)
# #########################################################字符串的遍历
# #############################使用for循环遍历字符串
# s9="Hello,World"
# for i in s9:
#     print(i,end='     ')
#
# #使用索引遍历字符串并打印每个字符
# s10="Hello,World"
# print(len(s10))
# for i in range(len(s10)):
#     print(s10[i],end='      ')
# print()#默认是以\n(换行符)
#
# #遍历字符串的部分字符并打印
# s11="Helllo,World"
# for i in s11[7:12]:
#     print(i,end='     ')
# #########################################################第八章
# ###########################################集合
# s = {1,2,3,4}
# ss=set('1234')
# print(type(s))
# print(type(ss))
#
#
# s.add(6)
# print(s)
# s.pop()
# print(s)
# s.remove(4)
# print(s)
##########################################################元组
#创建元组
# 创建空元组
# tuple1=()
# print(tuple1)
# # 创建带有元素的元组，可以有元素类型
# tuple2=(1,"a",3,"hello",2.2)
# print(tuple2)
# # 创建只有一个元素的元组
# tuple3=(1,)
# print(type(tuple3))

# ##使用tuple()函数将其他数据类型转换为元组类型
# #语法格式：tuple(数据)
# #将字符串转换成元组
# tuple1=tuple('hello,world')
# print(tuple1)
# #将列表转换成元组
# list1=['Python','java','-','c']
# tuple2=tuple(list1)
# print(tuple2)


# #从开始索引开始截取，截止到结束索引之前
# tuple1=('h','e','l','l','o')
# ##使用索引访问元组中的某个元素
# #使用正数索引，从0开始
# print(tuple1[2])
# #使用负数索引，倒序从-1开始
# print1(tuple1[-4])
# ##使用切片访问元组中的一组元素，前闭后开
# #使用正数切片
# print(tuple1[1:4])
# #指定步长
# print(tuple1[1:4:2])
# #使用负数切片
# print(tuple1[-5:-1])
##########################################################################################################

############################################################修改元组元素
# tuple1=(1,3,5)
# tuple2=('55','66')
# #修改元组元素操作是不正确的
# #tuple1[0]=100
# #tuple1[0]=200
# #连接元组创建一个新元组，两个数据必须都是元组
# tuple3=tuple2+tuple1
# print(tuple3)

###############################################################################删除
# t1={1,2,3,[9,5,6]}
# del t1
# print(t1)

#########################################################################定义元祖tuple1储存上述信息:
# n=input('请输入姓名：')
# p=input('请输入电话号码：')
# e=input('请输入邮件地址：')
# i=input('请输入地址：')
# tuple1=("姓名：",n,"电话：",p,"邮件：",e,"地址：",i)
# print(tuple1)

# #####################空列表
# # l1=list()
# # print(l1)
# # #####################带元素的列表
# # l2=[1,5,9]
# # print(l2)
# # print(type(l2))
# # ##############################将字符串转化为列表
# # l3=list("hello")
# # print(l3)
# # ###############################转化元组
# # l4=tuple("hello")
# # t1=tuple("together")
# # l5=list(t1)
# # print(l5)
# # #################################转化range函数
# # w1=range(5)
# # l6=list(w1)
# # print(l6)
#####################################################索引
# list=['5','6','7','8','9']
# ####正索引
# print(list[2])
# ###############负索引
# print(list[-3])
# ##############################################################切片列表
# list=['1','2','3','4','5','6']
# ##############################################################使用正切片
# print(list[1:3])
# ###############################################################取到最后
# print(list[1:])
# ###############################################################有步长的,步长就是n+1中的1
# print(list[1::2])
# ####################################################负切片
# print(list[-3:-1])
# ###########################################################负切片步长
# print(list[-5:-1:2])
#######################################################################列表中添加元素
# ####1、append()用于在列表的末尾追加元素
# l6=['a','c','b','d']
# l6.append('r')
# print(l6)
# ######列表添加列表
# l6.append(['e','f'])
# print(l6)



# ############################################################
# #####2extend()在列表的末尾一次添加多个元素
# l13=['a','b','c']
# l13.extend('d')
# print(l13)
# #列表添加列表
# l13.extend(['e','c''f','g'])
# print(l13)
# l13.extend('world')
# print(l13)
#
# ##3、insert()在列表的特定位置添加想要的添加的特定元素
# l14=['python','c','java']
# #插入元素，在索引为2处插入go元素
# l14.insert(2,'go')
# print(l14)
######################################################################################删除元素
#remove删除；remove()方法是移除掉列表里面的特定元素，但只会删除第一个和指定值相同的元素（从左往右），而且必须保证钙元素是存在的，否则会报错ValueError
# l15=['a','b','c','d']
# l15.remove('a')
# print(l15)
# ##pop()方法用来删除列表中指定索引处的元素
# #l16=[10,56,65,85,95,64,1]
# ##伤处索引为3的元素
# #l16.pop(3)
# #print(l16)
# #删除最后一个元素
# #l16.pop()
# #print(l16)
# l16=[1,3,4,5,6,7,8,9]
# l16.pop(4)
# print(l16)
# l16.pop()
# print(l16)
# #####################################del可以用来删除列表中单个元素或者一段连续的元素
# l17=['a','b','c','d','e']
# ##删除索引为1的元素
# del l17[1]
# print(l17)
# l18=[10,20,30,40,50,60]
# ##删除索引为1-3的元素
# del l18[1:4]
# print(l18)
# ##若将列表中所有元素全部删除，可以只用列表的clear()方法
# l19=['a','b','c','d']
# ##清空列表
# l19.clear()
# print(l19)
#############################################################################################
##创建两个空列表name_list和phone，用于存储联系人姓名和电话
##向列表中添加联系人信息
##向列表中添加联系人信息
##输入联系人编号修改信息
##输入联系人编号删除信息
#####使用clear（）清空通讯录。name_list=['张三','李四','王五','maliu'],phone_list=[123,236,258,598]
# name_list=[]
# phone_list=[]
# while 1:
#     print("菜单：1.添加联系人2.修改联系人3.删除联系人")
#     chioce=input("请输入选择：")
#     #1.添加联系人，包括姓名，手机号
#     if chioce =="1":
#         name_list.append(input("请输入联系人姓名："))
#         phone_list.append(input("请输入联系人手机号："))
#         print(name_list)
#         print(phone_list)
#     #2.修改联系人信息
#     elif chioce=="2":
#         num=int(input("请输入联系人编号："))
#         if len(name_list)>0 and num<=len(name_list):
#             name_list[num-1]=input("修改联系人姓名")
#             phone_list[num-1]=input("修改联系电话")
#         else:
#             print("联系人编号输入有误")
#     #3.删除联系人信息
#     elif chioce=="3":
#         num=int(input("请输入联系人编号："))
#         if len(name_list)>0and num<=len(name_list):
#             name_list.pop(num-1)
#             phone_list.pop(num-1)
#         else:
#             print("联系人编号输入有误")
#     else:
#             print("显示联系人信息")
#             print(name_list)
#             print(phone_list)
#
###########################################################################################查找元素 inde()
# ls1=[1,3,5,7,'a','b',8,3,'b',2]
# print(ls1.index(3))
# print(ls1.index('b',6))
# print(ls1.index('b',6,9))
# #报错示范：print(ls1.index(0))
#
#
#
# ####################count()方法用来统计一个元素在列表中出现的次数列表名.count(统计的value元素)
# ls2=[1,3,5,7,'a','b',8,3,'b',2,5,5,7,1]
# print(ls2.count(5))
# print(ls2.count(0))
# print(ls2.count('b'))
####################################
#元素排序 sort()函数用于对原列表进行排序，如果指定参数，则使用指定的比较函数，
#语法格式为：ls.sort(key=None,reverse=False)
#1、元素是字符串的排序
# ls3=['1','3','44','23','99','88','56']
# #默认升序##########################################################################################
# ls3.sort()
# print(ls3)
# #降序 reverse=True
# ls3.sort(reverse=True)
# print(ls3)
#
# #2、元素是数值的排序
# ls4=[1,3,44,23,99,88,56]
# #默认升序
# ls4.sort()
# print(ls4)
# #降序 revers=True
# ls4.sort(reverse=True)
# print(ls4)
###########################################################
#######################################"""字典"""
#字典的创建
#1、使用{}创建字典语法格式：
#字典名={'key1':'value1','key2':'value2',...,'keyn':valuen}
#使用字符串作为key
# d1={'数学':95,'英语':90,'语文':80}
# print(type(d1))
# #使用元组和数字作为key
# d2={(20,30):'great',30:[1,2,3]}
# print(type(d2))
# #创建空列表
# d3={}
# print(d3)
# #2、用dict()方法通过关键字的参数来创建字典格式：
# #字典名=dict(str1=value1,str2=value2,str3=value3)
# d4=dict(数学=90,语文=89,英语=88)
# print(d4)
#################################################################
##################################################字典元素的访问
# #1、字典名[key]
# d5={'数学':95,'英语':92,'语文':84}
# #键(d5)中存在，返回的是值value
# print(d5['英语'])
# #键(d5)中不存在，会引发一个keyerror错误
# ###print(d5['python'])
# ############################################################################
# ####2、get()方法来获取指定键对应的值，语法格式：字典名.get(key[,default])
# d6={'数学':95,'英语':92,'语文':84}
# #键存在
# print(d6.get('语文'))
# #键存在,不写default，会返回None
# print(d6.get('python'))
# print(d6.get('python','该键不存在'))
###################################################################################
#############################################################字典添加键值对
# d7={'数学':95,'英语':92,'语文':84,'python':99}
# d7['可视化']=99
# print(d7)
#
#
# ##字典修改键值对
# d8={'数学':95,'英语':92,'语文':84,'python':99}
# d8['英语']=100
# print(d8)
# #
# #
# # #字典删除键值对
# d9={'数学':95,'英语':92,'语文':84,'python':99}
# #1、使用del关键字
# del d9['语文']
# print(d9)
# #2、使用pop()方法
# d9.pop('英语')
# print(d9)









###############################################################################################################################第九章
################################################################################################################需要一个文本文档
# #文件打开open(),encoding='utf-8'
# f= open(r'C:\Users\Administrator\Desktop\556.txt',encoding='utf-8')
# print(f.read())
# # 读取文件内容
# with open(r'C:\Users\Administrator\Desktop\556.txt',encoding='utf-8')as file:
#     text=file.read()
# print(text)
# # ############写文件
# data='再见'
# f1=open('556.txt','w',encoding='utf-8')
# f1.write('Heloweem')
# f1.close()

# ##############################打开文件用于写入，如果文件不存在将会被创建
# with open('556.txt','a',encoding='utf-8')as file:
#     file.write(data)
#########################################################################################################################
#########读excel数据DataFrame
# import pandas as pd
# df=pd.read_excel(r'C:\Users\Administrator\Desktop\556.xlsx')
# print(df)
# #########################################
# #写文件到excel
# a1={'姓名':'zhangyaojie','年龄':20}
# a2={'姓名':'maziyuan','年龄':20}
# a3={'姓名':'menglongben','年龄':20}
# l=[a1,a2,a3]
# print(l)
# #需要将列表变成DataFrame格式
# df1=pd.DataFrame(l)
# print(df1)
# #使用pandas的函数to_excle(),index索引
# df1.to_excel('222.xlsx',index=False)
###############################################
# from docx import Document
# doc=Document('2023年国务院政府工作报告.docx')
# print(doc)
# p=doc.paragraphs
# print(p)
# print(len(p))
# for i in p:
#     print(i.text)























